import { isArray } from './index';

/**
 * 校验工具类
 */

/**
 * 校验数据
 * @param data 要校验的数据
 * @param validObj 校验对象 {a: 1} 如果对象中a不等于1则返回false
 * @returns {boolean}
 */
function validFun(data, validObj) {
    let isSuc = true;
    for(let k in validObj) {
        let validTempObj = validObj[k];
        let val = data[k];
        if(!validTempObj) {
            if(validTempObj !== val){
                isSuc = false;
            }
        }else if(typeof(validTempObj) === "object") {
            if(!validFun(val, validTempObj)) {
                isSuc = false;
            }
        }else{
            if(validTempObj !== val) {
                isSuc = false;
            }
        }
    }

    return isSuc;
}

/**
 * 校验数据
 * @param data 要校验的数据 可以是数组 或 对象
 * @param validObj 校验对象 {a: 1} 如果对象中a不等于1则返回false
 * @returns {boolean}
 */
export function validField(data, validObj) {
    if(isArray(data)){
        for(let i in data) {
            if(!validFun(data[i], validObj)) {
                return false;
            }
        }

        return true;
    }else{

        return validFun(data, validObj);
    }
}
